@CI
3年前 提问
1个回答
逻辑漏洞的支付漏洞是怎么回事
一颗小胡椒
3年前
官方采纳
支付漏洞的理解通常都是篡改价格。比如,一分钱买任何东西。少收款、企业收费产品被免费使用,直接造成企业的经济损失。
产生原因
开发人员往往会为了方便,直接在支付的关键步骤数据包中直接传递需要支付的金额。而这种金额后端没有做效验,传递过程中也没有做签名,导致可以随意篡改金额提交。只需抓包看到有金额的参数修改成任意即可。
漏洞原理
一般支付流程:
用户用钱包加上优惠券/折扣券确认购买商品的单价、数量以及购买时间,提交给平台或商家确认无误后,确认支付信息,报告购买信息。其中有三个重要的因素:用户、商品、平台/商家。这三个因素在支付流程中都有可能造成支付漏洞。
修复防范
- 对支付流程的每个环节进行校验,并且防止跳过某一个环节。
- 用户确认购买后,立即验证商品价格(商品单价、商品数量、折扣优惠)、订单价格和到账金额。
- 对一些优惠券、折扣券的使用方式进行测试。
- 修复防范网站其他漏洞。